package com.yantong.mapper;
import com.yantong.pojo.SysRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.session.RowBounds;

import java.util.List;
import java.util.Map;

/**
 * 角色
 * @author kanghaixin
 */
@Mapper
public interface RoleMapper {
	/**
	 * 主键获取
	 * @param roleId
	 * @return
     */
	SysRole getByKey(Long roleId);

	/**
	 * 条件获取列表
	 * @param map
	 * @return
     */
	List<SysRole> getListByParams(Map<String, Object> map);

	/**
	 * 条件获取列表,分页
	 * @param map
	 * @param rowBounds
	 * @return
	 */
	List<SysRole> getListByParams(Map<String, Object> map, RowBounds rowBounds);

	/**
	 * 条件统计
	 * @param map
	 * @return
     */
	int countByParams(Map<String, Object> map);

	/**
	 * 添加
	 * @param role
	 * @return
     */
	int insert(SysRole role);

	/**
	 * 更新
	 * @param role
	 * @return
     */
	int updateByKey(SysRole role);

	/**
	 * 逻辑删除
	 * @param roleId
	 * @return
     */
	int remove(Long roleId);

	/**
	 * 批量逻辑删除
	 * @param roleIds
	 * @return
     */
	int batchRemove(List<Long> roleIds);

	/**
	 * 获取用户所有的角色
	 * @param userId
	 * @return
     */
	List<SysRole> listUserRoles(Long userId);

	List<Long> listUserRoleIds(Long userId);

	List<SysRole> listByAll();


}
